	.text
	.align 4
	.global memset, _memset
	.proc	04	
	memset:
	_memset:
memset:
     cmp  %o2, 3
     bleu  memset0x84
     mov  %o0, %g2
     btst  3, %o0
     bne,a   memset0x88
     add  %o2, -1, %o2
     and  %o1, 0xff, %o1
     sll  %o1, 8, %g2
     or  %g2, %o1, %g2
     sll  %g2, 0x10, %g3
     or  %g2, %g3, %g2
     cmp  %o2, 0xf
     bleu  memset0x74
     mov  %o0, %g3
     memset0x38:
     st  %g2, [ %g3 ]
     add  %g3, 4, %g3
     st  %g2, [ %g3 ]
     add  %g3, 4, %g3
     st  %g2, [ %g3 ]
     add  %g3, 4, %g3
     st  %g2, [ %g3 ]
     add  %o2, -16, %o2
     cmp  %o2, 0xf
     bgu  memset0x38
     add  %g3, 4, %g3
     b  memset0x78
     cmp  %o2, 3
     memset0x6c:
     add  %o2, -4, %o2
     add  %g3, 4, %g3
     memset0x74:
     cmp  %o2, 3
     memset0x78:
     bgu,a   memset0x6c
     st  %g2, [ %g3 ]
     mov  %g3, %g2
     memset0x84:
     add  %o2, -1, %o2
     
     memset0x88:
     cmp  %o2, -1
     be  memset0xa8
     nop 
     memset0x94:
     stb  %o1, [ %g2 ]
     add  %o2, -1, %o2
     cmp  %o2, -1
     bne  memset0x94
     inc  %g2
     memset0xa8:
     retl 
     nop 
